/*********************////////////////////////Funciones///////////****************************
var funcEditFormJuez=function ()
{            
        Ext.getCmp("formCrudJuez").getForm().submit({
                url:'juez/editarDatos',
                method:'POST',
                clientValidation: false,
                success: function(form,action)
                        {   
                            var obj = Ext.JSON.decode(action.response.responseText);
                            if(obj.success)
                            {            
                                   Ext.example.msg('Editar Juez', 'Se han editado los datos con éxito.');
                                    ventanaFormJuez.hide();                                    
                                    Ext.getCmp("gridJueces").getStore().load();            
                                    formCrudJuez.getForm().reset();                                 
                            }},
                failure: function(form,action){  Ext.example.msg('Editar Juez', 'Ocurrió un error al editar los datos.');}
       });
}

var funcNuevoJuez =function()
{        
        Ext.getCmp("formCrudJuez").getForm().submit({
            url:'juez/registrar',
            method:'POST',
           // clientValidation: false,
            
            success: function(form,action)
                    {
                            
                            var obj = Ext.JSON.decode(action.response.responseText);
                            if(obj.success)
                            {            
                                   Ext.example.msg('Registro Juez', 'Se registró el juez con éxito.');
                                    ventanaFormJuez.hide();                                    
                                    Ext.getCmp("gridJueces").getStore().load();
                                    formCrudJuez.loadRecord(formInfoJuez.getRecord());
                                    formCrudJuez.getForm().reset(); 
                            }
                            else   alert(' registro fallo.');
                    },
            failure: function(form,action)
                    {
                        Ext.example.msg('Registro Juez', 'Error al registrar el juez.');
                    }          
        });
    
  
}



var comboRh=Ext.create('Ext.form.ComboBox', {
    name:'rhJuez',
    fieldLabel: 'Grupo Sanguineo (RH)',
    emptyText: 'Seleccione su Grupo',  
    store:  new Ext.data.Store({autoLoad: true,
                            fields:[{name:'grupoSang',type:'string'}],
                            proxy: {type: 'ajax',
                                    url: 'utilidades/getGruposSanguineos',  // url that will load data with respect to start and limit params        
                                    reader: {
                                          type: 'json',
                                          root: 'items',
                                          totalProperty: 'total'}}
            }),
    queryMode: 'remote',
    displayField: 'grupoSang',
    valueField: 'grupoSang'
    //renderTo: Ext.getBody()
});

var comboEstadosJuez=new Ext.form.ComboBox({
        // all of your config options
        fieldLabel:'Estado',
        //hideLabel: true,
        id:'comboEstadosJuez',   
        name:'estadoJuez',
        triggerAction: 'all',
        lazyRender:true,
        editable:false,    
        hiddenName:'nombreEstado',
        valueField: 'nombreEstado',           
        store:  new Ext.data.Store({autoLoad: true,
                            fields:[{name:'nombreEstado',type:'string'}],
                            proxy: {type: 'ajax',
                                    url: 'jugador/getEstados',  // url that will load data with respect to start and limit params        
                                    reader: {
                                          type: 'json',
                                          root: 'items',
                                          totalProperty: 'total'}}
            }),

            displayField: 'nombreEstado',
            
            mode: 'remote',
            emptyText: 'Estado',                        
            allowBlank:false
  }); 
  
  
  var fielsetIngPass=new Ext.form.FieldSet({
    
     id:'fielsetIngPass',
    title:'Ingrese Contraseña',
    disabled:true,
     collapsible: true,
     

    width:'100%',
   // autoHeight: true,
    defaults:{ xtype:'textfield',labelWidth:120},

    items:[
            {fieldLabel:'Nombre Usuario',
                name:'nombUsuarioJuez',                
                allowBlank: false
            },
            {fieldLabel:'Contraseña',
                name:'password1',                
                allowBlank: false,
                inputType: 'password'
            },{
                fieldLabel:'Confirmar Contraseña',
                 allowBlank: false,
                 inputType: 'password',
                 validator: function(value) {
                var password1 = this.previousSibling('[name=password1]');
                return (value === password1.getValue()) ? true : 'Las contraseñas no coinciden'
        }}]
}); 
  
  var comboTiposJuez=new Ext.form.ComboBox({
        // all of your config options
        fieldLabel:'Tipo Juez',
        //hideLabel: true,
        id:'comboTiposJuez',   
        name:'tipoJuez',
        triggerAction: 'all',
        lazyRender:true,
        editable:false,    
        hiddenName:'nomTipoJuez',
        valueField: 'nomTipoJuez',           
        store:  new Ext.data.Store({autoLoad: true,
                            fields:[{name:'nomTipoJuez',type:'string'}],
                            proxy: {type: 'ajax',
                                    url: 'juez/getTiposJuez',  // url that will load data with respect to start and limit params        
                                    reader: {
                                          type: 'json',
                                          root: 'items',
                                          totalProperty: 'total'}}
            }),

            displayField: 'nomTipoJuez',
            
            mode: 'remote',
            emptyText: 'Tipo Juez',                        
            allowBlank:false,
            listeners: {select: function()
                                {
                                        if(comboTiposJuez.getValue()=="Juez Silla" || comboTiposJuez.getValue()=="Anotador")
                                            {Ext.getCmp("fielsetIngPass").setDisabled(false);}
                                        else Ext.getCmp("fielsetIngPass").setDisabled(true);
                                 }
                        }
  }); 

var comboPaisesJuez=new Ext.form.ComboBox({
        // all of your config options       
        fieldLabel:'Nacionalidad',
        //hideLabel: true,
        id:'ventanaFormJuez',   
        name:'paisJuez',
        triggerAction: 'all',
        lazyRender:true,
        editable:false,    
        hiddenName:'idPais',
        valueField: 'idPais',           
        store:  new Ext.data.Store({autoLoad: true,
                            fields:[{name:'idPais',type:'int'},{name:'nombrePais',type:'string'}],
                            proxy: {type: 'ajax',
                                    url: 'utilidades/getPaises',  // url that will load data with respect to start and limit params        
                                    reader: {
                                          type: 'json',
                                          root: 'items',
                                          totalProperty: 'total'}}
            }),

            displayField: 'nombrePais',
            listeners:{
                      select: function(combo,record,index)
                            {
                              comboCiudadesJuez.setDisabled(false);
                              comboCiudadesJuez.clearValue();
                              storeCiudades.load({params:{'idPais': comboPaisesJuez.getValue()}});
                            }
                      },
            mode: 'remote',
            emptyText: 'País',            
            allowBlank:false
  }); 

var storeCiudades= new Ext.data.Store({autoLoad: false,
                            fields:[{name:'idCiudad',type:'int'},{name:'nombreCiudad',type:'string'}],                            
                            proxy: {type: 'ajax',
                                    url: 'utilidades/getCiudades',  // url that will load data with respect to start and limit params        
                                    params:{'idPais': comboPaisesJuez.getValue()},
                                    reader: {
                                          type: 'json',
                                          root: 'items',
                                          totalProperty: 'total'},
                                      actionMethods: {
                                                        create : 'POST',
                                                        read   : 'POST',
                                                        update : 'POST',
                                                        destroy: 'POST'
                                                    }                                                                          
                                    }
                              
            });
            
            

var comboCiudadesJuez=new Ext.form.ComboBox({
        // all of your config options
        hideLabel: true,
        disabled: true,
        id:'comboCiudadesJuez',   
        name:'ciudadJuez',
        triggerAction: 'all',
        lazyRender:true,
        editable:false,    
        hiddenName:'idCiudad',
        valueField: 'idCiudad',           
        store: storeCiudades,
        queryMode: 'local',
        displayField: 'nombreCiudad',      
        emptyText: 'Ciudad',            
        allowBlank:false                
 }); 


            
var formCrudJuez= new Ext.form.Panel({	
                fieldDefaults: {msgTarget: 'side'},                 
                autoHeight: true,
		frame:true,
		autoWidth:true,
                id:'formCrudJuez',
		layout:'anchor',
		defaults:{anchor:'100%', xtype:'textfield'},          
		
		items:[{xtype:'fieldset',
                        
                        id:'fieldsetCrudJuez',
			title:'Ingrese Datos del Juez',
			//height:'100%',
                        width:'100%',
			autoHeight: true,
			defaults:{ xtype:'textfield',labelWidth:120},
			
			items: [
                                {xtype:'hiddenfield', name:'idJuez'},
                                {fieldLabel:'Nombres', name:'nombresJuez',allowBlank: false},
				{fieldLabel:'Apellidos',name:'apellidosJuez',allowBlank: false},                                
                               {
                                    xtype: 'filefield', id: 'fotoJuez',
                                    emptyText: 'Seleccionar Foto',
                                    fieldLabel: 'Foto',
                                    name: 'rutaFotoJuez',
                                    buttonText: '',
                                    buttonConfig: {iconCls: 'x-form-file'},
                                    
                                },
				{fieldLabel:'No. Identificación',name:'identifJuez',allowBlank: false,maskRe: /[0-9]/i},
				{xtype:'datefield', fieldLabel:'Fecha de Nacimiento',name:'fechaNcmtoJuez', format: 'Y-m-d'},
				comboRh,comboPaisesJuez, comboCiudadesJuez,
                                
                                
				comboTiposJuez,                                
                                //aqui van los combos ciudades y pais
				{fieldLabel:'Telefono',name:'telJuez',maskRe: /[0-9]/i},
				{fieldLabel:'E-mail',name:'e-mailJuez',allowBlank: false},                                                                
				comboEstadosJuez
                                
                               ] 
			},fielsetIngPass],
                    buttons:[{text:'Registrar',
                              id:'butRegJuez',
                              handler: funcNuevoJuez
                            },{
                                text:'Guardar Cambios',                                
                                id:'butEditJuez',
                                handler: funcEditFormJuez
                            },{text:'Cancelar',
                                handler: function()
                                {ventanaFormJuez.hide();
                                 formCrudJuez.getForm().reset();
                                }
                            }]
	});           

var formInfoJuez= new Ext.form.Panel({
               // autoHeight:true,
               region: 'east',
               width: '48%',
		frame:true,
		//width:'100%',
                id:'formInfoJuez',
		layout:'anchor',
		defaults:{anchor:'100%'},
                fieldDefaults: {msgTarget: 'side'},
		height:'100%',
		items:[{xtype:'fieldset',
                        id:'fieldsetInfoJuez',
			title:'Datos del Juez',
			height:'100%',
                        autoWidth: true,
			defaults:{ xtype:'displayfield',labelAlign:'left',labelWidth:'110',labelStyle:'font-weight:bold;'},
			
			items: [{xtype:'hiddenfield', name:'idJuez'},
                                /*{id:'fotoImagen',xtype:'image', name:'fotoJug',loader:{url:'jugador/obtenerFoto',params: {idJug: 3},
loadMask: {msg:'Cargando....'},
                        scope:this}},*/
                                {fieldLabel:'Nombres', name:'nombresJuez'},
				{fieldLabel:'Apellidos',name:'apellidosJuez'},
				{fieldLabel:'No. Identificación',name:'identifJuez'},
				{fieldLabel:'Fecha Nacimiento',name:'fechaNcmtoJuez'},				
				{fieldLabel:'Nacionalidad',name:'ciudadJuez'},			
				{fieldLabel:'Telefono',name:'telJuez'},
				{fieldLabel:'E-mail',name:'e-mailJuez'},
				{fieldLabel:'Estado',name:'estadoJuez'},
                                {fieldLabel:'Tipo Juez',name:'tipoJuez'},				
                                {fieldLabel:'RH',name:'rhJuez'},
                                {xtype:'hiddenfield', name:'paisJuez'},
                                {   
                                    xtype:'button',
                                    text: 'Cambiar Contraseña',
                                    scope: this,
                                    hidden: true,
                                    id: 'butCambiarContrasJuez',
                                    handler: function()
                                            { 
                                                cambiarContrasJuez(formInfoJuez.getForm().findField("idJuez").getValue());
                                            }
                                }
                               ],
                            listeners:{render: function(){if(rolUsuario=="Administrador")Ext.getCmp("butCambiarContrasJuez").show();}}
			}]    
});
   
        
if(rolUsuario=="Administrador")
 {
     formInfoJuez.addDocked({xtype:'toolbar',dock:'bottom',items:['->',{
                    icon: '../../../js/extjs/ext-4.0.1/examples/shared/icons/fam/user-add.gif',
                   // cls: 'x-btn-icon',
                    id:'tbutRegJuez',
                    text: 'Registrar Juez',
                    scope: this,
                    
                    handler: function()
                             { Ext.getCmp("fieldsetCrudJuez").setTitle("Datos de Nuevo Juez");
                               ventanaFormJuez.setTitle("Registrar Juez");
                               ventanaFormJuez.show();                               
                               Ext.getCmp("butEditJuez").hide();
                               Ext.getCmp("butRegJuez").show();
                             }
                },{xtype:'tbseparator', id:'tbseparatorJuez'},{
                    //icon: 'icon-add',
                    text: 'Editar Datos',
                    scope: this,
                    
                    handler: function()
                            {   comboCiudadesJuez.setDisabled(false);
                                comboCiudadesJuez.clearValue();
                                storeCiudades.load({params:{'idPais': formInfoJuez.getForm().findField("paisJuez").getValue()},
                                    callback: function() {
                                                          comboCiudadesJuez.setValue(storeCiudades.findRecord('nombreCiudad',formInfoJuez.getForm().findField("ciudadJuez").getValue()));
                                                       }

                            });
                                
                                Ext.getCmp("fieldsetCrudJuez").setTitle("Editar Datos de Juez");
                                ventanaFormJuez.setTitle("Editar Datos");
                                formCrudJuez.loadRecord(formInfoJuez.getRecord());    
                                
                                 Ext.getCmp("fielsetIngPass").setDisabled(true);
                                
                                ventanaFormJuez.show();                               
                               Ext.getCmp("butEditJuez").show();
                               Ext.getCmp("butRegJuez").hide();
                            }
                            
                     
                }
                ]});
 
 }
 
       

var ventanaFormJuez = new Ext.Window({
	id     : 'ventanaFormJuez',
        title:'Registrar Juez',
	modal: true,
	closable:false,
	draggable: false, 
	autoHeight: true,
        animateTarget:'tbseparatorJuez',
	//autoWidth  : true,
        width: '30%',
	items  : [formCrudJuez]
});


